Grid environments offer programmatic access to information technology (IT) resources for applications. These environments have emerged to support the needs of the engineering and scientific communities. For example grid environments may harness the unused compute capacity of engineering workstations within an organization or provide access to specialized resources such as supercomputer clusters that are shared by many scientific researchers. These grid environments provide languages to specify resources required by jobs and services for brokering, resource discovery and resource management.
To date, grid environments have focused on support for scientific and engineering jobs. There is substantial literature regarding admission control, resource reservation, and scheduling for the support of these kinds of jobs for grids. Jobs are typically given a start-time/end-time window and a maximum job duration within the window. Peak requirements for resources such as CPUs, memory, network bandwidth, and storage capacity are identified and reserved for the duration of the job. This has proven to be effective for the batch job type of applications typically associated with engineering and science workloads.
In addition to scientific and engineering applications, there are also business applications. A business application may be loosely defined as an application requiring resources on a continuous basis but with resource requirements that vary based on factors such as time of day and day of week. In the same way as scientific applications acquire resources from computing grids, business applications may rely on resource utilities. Resource utilities are typically tightly coupled resources, which are realized as data centers and offer IT infrastructure as a service on demand.
The grid currently provides infrastructure for the support of batch jobs in resource utility environments. A job description is submitted to a resource manager. The resource manager uses resource availability information to decide whether it has sufficient resources to support the job. Current grid technologies rely on resource management systems such as Load Sharing Facility (“LSF”) by Platform Computing of Canada. Advance reservation may be appropriate for jobs that-require access to large numbers of resources or require access to popular resources that are difficult to obtain. With advance reservation, time is partitioned into slots and slots form a calendar. Reservations typically begin in the first available slot where all required resources are available.
As noted above, jobs are described in part by their peak resource requirements and maximum job duration. In other words, with advance reservation, the jobs are guaranteed access with enough resources to meet the peak requirement for the application. However, for business applications, the peak number of resources demanded and the mean number of resources demanded by the application may differ greatly (e.g., by a factor up to 20 and greater). Thus, the resources may be significantly under-utilized because much of the resources that are reserved are idle for a significant portion of the reserved duration of time. Therefore, with conventional advance reservation systems, resource utilization may be relatively inefficient.